import os
import subprocess


def convert_wav_to_mp3_ffmpeg(input_wav, output_mp3, bitrate="320k"):
    """
    使用原生FFmpeg转换WAV到MP3
    :param input_wav: 输入WAV文件路径
    :param output_mp3: 输出MP3文件路径
    :param bitrate: MP3比特率 (128k, 192k, 256k, 320k)
    """
    cmd = [
        "ffmpeg",
        "-i", input_wav,
        "-vn",  # 忽略视频流
        "-acodec", "libmp3lame",  # 使用MP3编码器
        "-ab", bitrate,  # 音频比特率
        "-ar", "44100",  # 采样率
        "-y",  # 覆盖输出文件
        output_mp3
    ]

    try:
        result = subprocess.run(cmd, check=True, capture_output=True, text=True)
        if result.returncode == 0:
            print(f"✓ 转换成功: {input_wav} → {output_mp3}")
            print(f"  文件大小: {os.path.getsize(output_mp3) // 1024}KB")
        return True
    except subprocess.CalledProcessError as e:
        print(f"× 转换失败: {e.stderr}")
        return False
    except FileNotFoundError:
        print("× FFmpeg未找到，请确保已正确安装FFmpeg")
        return False


# 使用示例
if __name__ == "__main__":
    convert_wav_to_mp3_ffmpeg(
        "E:/test/system_audio.wav",
        "E:/test/system_audio.mp3",
        bitrate="320k")
